home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD023b.dsk / COLOR EVOLUTION.bas < prev    next >
BASIC Source File  |  2003-06-12  |  3KB  |  92 lines

  1. 10  TEXT : HOME : LOMEM: 4 *4096
  2. 20  VTAB 5:P$ = "*****************": GOSUB 120
  3. 30  VTAB 6:P$ = "*               *": GOSUB 120
  4. 35  VTAB 7:P$ = "*     COLOR     *": GOSUB 120
  5. 40  VTAB 8:P$ = "*   EVOLUTION   *": GOSUB 120
  6. 50  VTAB 9:P$ = "*               *": GOSUB 120
  7. 60  VTAB 10:P$ = "*****************": GOSUB 120
  8. 70  VTAB 15: HTAB 9: PRINT "PRESS SPACE TO START."
  9. 80 J =  RND(1):K =  PEEK( -16384): IF K <128  THEN 80
  10. 90  POKE  -16368,0: HOME 
  11. 100 Q1 = 3:Q2 = 9
  12. 105 Q3 = 12:Q4 = 12:Q5 = 12
  13. 110  GOTO 130
  14. 120  PRINT  TAB( 20 - LEN(P$)/2);P$: RETURN 
  15. 130  FOR I = 1 TO 3000: NEXT I
  16. 150  DEF  FN NX(X) = 20 *(X <0) +X *(X <20)
  17. 160  DEF  FN NY(Y) = 24 *(Y <0) +Y *(Y <24)
  18. 180  DIM P%(39,47),N%(39,47),D%(39,47)
  19. 190  DIM CL%(2000),DL%(2000)
  20. 210  GR : POKE  -16302,0: COLOR= Q1: FOR I = 0 TO 47: HLIN 0,39 AT I: NEXT I:NM = 0
  21. 220  GOSUB 830
  22. 240  GOTO 363
  23. 250 NC = 0:ND = 0:NG = NG +1
  24. 255  POKE 49168,0: IF  PEEK(49152) = 27  THEN  TEXT : PRINT : PRINT  CHR$(4)"RUNMENU"
  25. 260 X = 0
  26. 270  FOR I = 1 TO CN
  27. 280 Y = CL%(I): IF Y <0  THEN X = X +1: GOTO 360
  28. 290  COLOR= 15: PLOT 2 *X,2 *Y
  29. 300 D = DL%(I)
  30. 310 N = N%(X,Y) +D:N%(X,Y) = N
  31. 320  IF P%(X,Y)  THEN  ON N GOTO 345,345,350,355,345,345,345,345,345
  32. 330  IF N < >3  THEN 357
  33. 340  COLOR= Q3:EE = 0: GOSUB 430: GOTO 360
  34. 345  COLOR= Q1:EE = 1: GOSUB 430: GOTO 360
  35. 350  COLOR= Q4: GOSUB 900: GOTO 360
  36. 355  COLOR= Q5: GOSUB 900: GOTO 360
  37. 357  COLOR= Q1: PLOT 2 *X,2 *Y
  38. 360  NEXT I
  39. 363 E =  INT( RND(1) *10) +1:
  40. 370 EE = 0
  41. 375  FOR I = 1 TO E
  42. 380 X =  INT( RND(1) *20)
  43. 390 Y =  INT( RND(1) *24)
  44. 400  COLOR= Q2: GOSUB 850
  45. 410  NEXT I
  46. 420  GOSUB 700: GOTO 250
  47. 430  IF EE = 1  THEN 440
  48. 435  PLOT 2 *X,2 *Y: PLOT 2 *X +1,2 *Y: PLOT 2 *X,2 *Y +1: PLOT 2 *X +1,2 *Y +1:P%(X,Y) = 1:D = 1: GOTO 460
  49. 440  PLOT 2 *X,2 *Y: PLOT 2 *X +1,2 *Y: PLOT 2 *X,2 *Y +1: PLOT 2 *X +1,2 *Y +1:P%(X,Y) = 0:D =  -1
  50. 460  IF X = 0  OR X = 19  OR Y = 0  OR Y = 23  THEN 640
  51. 470 D%(X -1,Y -1) = D%(X -1,Y -1) +D
  52. 480 D%(X -1,Y) = D%(X -1,Y) +D
  53. 490 D%(X -1,Y +1) = D%(X -1,Y +1) +D
  54. 500 D%(X,Y -1) = D%(X,Y -1) +D
  55. 510 D%(X,Y) = D%(X,Y) +D
  56. 520 D%(X,Y +1) = D%(X,Y +1) +D
  57. 530 D%(X +1,Y -1) = D%(X +1,Y -1) +D
  58. 540 D%(X +1,Y) = D%(X +1,Y) +D
  59. 550 D%(X +1,Y +1) = D%(X +1,Y +1) +D
  60. 560 NM = NM +D
  61. 570 NC = NC +1
  62. 580 ND = ND +D
  63. 590  IF X <XL  THEN XL = X
  64. 600  IF Y <YL  THEN YL = Y
  65. 610  IF X >XH  THEN XH = X
  66. 620  IF Y >YH  THEN YH = Y
  67. 630  RETURN 
  68. 640  FOR X2 = X -1 TO X +1
  69. 650  FOR Y2 = Y -1 TO Y +1
  70. 660 X3 =  FN NX(X2):Y3 =  FN NY(Y2)
  71. 670 D%(X3,Y3) = D%(X3,Y3) +D
  72. 680  NEXT : NEXT 
  73. 690  GOTO 560
  74. 700 CN = 0
  75. 710 XL =  FN NX(XL -1):XH =  FN NX(XH +1): IF XL > = XH  THEN I = XL:XL = XH:XH = I: IF XL = 0  OR XH = 19  THEN XL = 0:XH = 19
  76. 720 YL =  FN NY(YL -1):YH =  FN NY(YH +1): IF YL > = YH  THEN I = YL:YL = YH:YH = I: IF YL = 0  OR YH = 23  THEN YL = 0:YH = 23
  77. 730  IF XL = 0  THEN 750
  78. 740  FOR I = 0 TO XL -1:CN = CN +1:CL%(CN) =  -1: NEXT 
  79. 750  FOR X = XL TO XH: FOR Y = YL TO YH
  80. 760  IF   NOT D%(X,Y)  THEN 800
  81. 770 D = D%(X,Y)
  82. 780 CN = CN +1:D%(X,Y) = 0
  83. 790 CL%(CN) = Y:DL%(CN) = D
  84. 800  NEXT 
  85. 810 CN = CN +1:CL%(CN) =  -1
  86. 820  NEXT 
  87. 830 XL = 19:XH = 0:YL = 23:YH = 0
  88. 840  RETURN 
  89. 850  IF P%(X,Y) = 1  THEN 880
  90. 860  GOSUB 435
  91. 880  RETURN 
  92. 900  PLOT 2 *X,2 *Y: PLOT 2 *X +1,2 *Y: PLOT 2 *X,2 *Y +1: PLOT 2 *X +1,2 *Y +1: RETURN